/*
 * wiip_list.h
 *
 *  Created on: Aug 27, 2024
 *      Author: Edward
 */

#ifndef LIST_WIIP_LIST_H_
#define LIST_WIIP_LIST_H_

#include "../../04_DRI/DRI_Init.h"

typedef struct {
	uint16_t id;  /* 信息的编号 */
	Time_TypeDef ariseTime;  /* 信息的产生实时时间 */
	uint32_t ariseCnt;	/* 信息产生的时间 */
	uint32_t duration;	/* 信息的持续时间 */
	uint8_t type;  /* 信息类型  0:警告 1:故障 2:保养 */
//    char description[50];  /* 信息描述 todo:可以优化成查表的型式*/
} info_t;
typedef struct listNode_t{
	info_t record;  // 节点存储的信息详情
	struct listNode_t *next;   // 指向下一个节点的指针
} listNode_t;

/* 在列表头部增加记录节点 */
uint8_t list_addHeadNode(listNode_t ** head, info_t info);
/* 在列表尾部增加记录节点 */
uint8_t list_addTailNode(listNode_t ** head, info_t info);
/* 在列表尾部删除记录节点 */
uint8_t list_delTailNode(listNode_t ** head);
/* 在列表中间删除指定的信息记录节点 */
uint8_t list_delMiddNode(listNode_t ** head, uint16_t id);
/* 在列表中查找指定的信息记录节点并修改 */
uint8_t list_editNodeByID(listNode_t ** head, uint16_t ID, info_t editNode);
/* 在列表中查找指定的信息记录节点 */
uint8_t list_findNodeBySN(listNode_t ** head, uint16_t SN, listNode_t ** targetNode);

#endif /* LIST_WIIP_LIST_H_ */
